/*
 * Copyright (c) 2001, 2002 Boris Pruessmann and others. All rights reserved.
 * This program and the accompanying materials are made available under the
 * terms of the Common Public License v0.5 which accompanies this distribution,
 * and is available at http://www.eclipse.org/legal/cpl-v05.html
 * 
 * Contributors: Boris Pruessmann - Initial implementation.
 */
package net.sourceforge.perforce.core.api;

import org.eclipse.core.runtime.IAdaptable;

/**
 * This interface describes the result of a 'p4 opened' command.
 * 
 * @version $Revision: 488 $
 * @author <a href="mailto:bpruessmann@users.sourceforge.net">Boris
 *         Pruessmann</a>
 * 
 *         TODO: Remove IAdaptable
 */
public interface IOpenedResult extends IAdaptable {
  //----------------------------------------------------------------------------
  // --------- Methods

  /**
   * Returns the filename in depot syntax.
   * 
   * @return the filename.
   */
  String getDepotFilename();

  /**
   * Returns the filename in client syntax.
   * 
   * @return filename in client syntax.
   */
  String getClientFilename();

  /**
   * Returns the revision.
   * 
   * @return the revision number.
   */
  Integer getRevision();

  /**
   * Returns the action.
   * 
   * @return the action.
   */
  String getAction();

  /**
   * Returns the changelist.
   * 
   * @return the changelist number.
   */
  Integer getChangelist();

  /**
   * Returns the file type.
   * 
   * @return the file type.
   */
  IFileType getFileType();

  /**
   * Returns the user.
   * 
   * @return the user name.
   */
  String getUserName();

  /**
   * Returns the client.
   * 
   * @return the client name.
   */
  String getClientName();

  /**
   * Indicates whether we have the lock for the file or not.
   * 
   * @return true if we have the lock.
   */
  boolean hasOurLock();

  /**
   * Returns the responsible PerforceServer.
   * 
   * @return the perforce server.
   * 
   *         TODO: Remove
   */
  IPerforceServer getPerforceServer();
}
